                        ===========
                        R E A D M E
                        ===========

    QLogic Ethernet Controller CMPI provider for Windows

            Copyright (c) 2015 QLogic Corporation
                     All rights reserved.

Table of Contents
-----------------

    1.  Overview
    2.  Limitation
    3.  Dependency
    4.  Files
    5.  Installation
    6.  Implementation
    7.  Known Limitations
    8.  Troubleshooting
    9.  Third Party Software License



1. Overview
-----------

QLogic ethernet controller CMPI provider implements various DMTF 
profiles to provide information about the device, and methods to 
perform diagnostic tests, firmware update, as well as device 
configuration. The provider currently conforms to the following 
standards defined by DMTF:
	Standard				Version
	------------------------------------------------
	Profile Registration Profile 		1.0.0c
	Ethernet Port Profile 			1.0.0
	Diagnostic Profile 			1.0.0b
	Host LAN Network Port Profile 		1.0.0
	Software Inventory Profile 		1.0.0
	Software Update Profile 		1.0.0


2. Limitation
-------------

The provider supports i386 architecture based CPU. The following is
the list of supported OS:

    Windows Vista (32 bit and 64 bit)
    Windows 7 (32 bit and 64 bit)
    Windows 2008 (32 bit and 64 bit)
    Windows 2008-R2 (32 bit and 64 bit)
    Windows 8 (32 bit and 64 bit)
    Windows 2012 (32 bit and 64 bit)
    Windows 2012-R2 (32 bit)

Please also refer to 'Dependency' section for more information.



3. Dependency
------------------

a. QLogic network adapters running the following driver versions:
   For 4401 devices:        driver version 3.46.
   For NetXtreme devices:   NDIS driver version >= 6.34.
   For NetXtremeII devices: VBD driver version >= 2.5.2.

   Please refer to README.TXT of the target driver for installation
   instruction.

b. BMAPI
   bmapi version >= 7.30.7.

c. OpenSSL
   Refer to license information below.

d. TCL libraries

e. OpenPegasus
   This provider package is tested with OpenPegasus 2.9.2, 2.10.0, and 2.11.1 
   compiled from source code. The distributed version of inbox Pegasus found 
   in Redhat 5 and Redhat 6 has also been verified. There is no inbox Pegasus 
   for SuSE.


4. Files
--------
    
    QLGCCmpiProvider.dll                        BRCM_CIM provider library
    libxml2.dll                                 XML share library
    tcl83.dll                                   TCL library
    readme.txt                                  this file
    release.txt                                 release information


5. Installation
---------------

5.1 OpenPegasus

    a. Read 'Dependency' section and make sure required packages are
       installed properly.

    b. Obtain OpenPegasus package (v2.10.0 or later) from www.openpegasus.org.

    c. Set the following environment variables for OpenPegasus:
           PEGASUS_ROOT - this is the location of the pegasus source tree.
           PEGASUS_HOME - this is the location for the built executables,
                          and repository to contain %PEGASUS_HOME%/bin, 
                          %PEGASUS_HOME%/lib, %PEGAUS_HOME%/repository,
                          and %PEGASUS_HOME%/mof subdirectories.
           PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
           PEGASUS_CIM_SCHEMA="CIM222"
           PEGASUS_PLATFORM=WIN32_IX86_MSVC (or PEGASUS_PLATFORM_WIN64_X86_64_MSVC)
           PATH=%PATH%:%PEGASUS_HOME%/bin

    c. Build OpenPegasus properly with the following commands: 
          > make clean; make
          > make repository
 
5.2 Installing Provider

    a. Copy all the DLLs to %PEGASUS_HOME%/bin path

    b. Stop cimserver if it is running

    c. From the command prompt, go to the path containing the MOF files:

	cimmofl -w -nroot/qlgcnxns -aE -R%PEGASUS_HOME% QLGCCmpiProvider.mof

	cimmofl -w -nroot/PG_InterOp -aE -R%PEGASUS_HOME% QLGCCmpiProviderReg.mof


    d. start cimserver


5.3 Uninstalling Provider

    a. Stop cimserver

    b. From the command prompt, call cimprovider -r -m QLGCCmpiProviderModule

    c. remove %PEGASUS_HOME%/repository/root#qlgcnxns

    d. remove the DLL files indicated in Files section



6. Implementation
--------------------
6.1 Profile Registration Profile
   For each implemented profile, there is an instance of RegisteredProfile describing 
   the profile name and version. The RegisteredProfile instance is associated to the 
   corresponding ManagedElement through ElementConformsToProfile. RegisteredProfile 
   instances are instantiated in root/InterOp namespace in order to advertise the 
   availability of a conformant implementation of a profile. The rest of the class 
   instances are implemented in root/BrcmBnxNS namespace. 
   
   
6.2 Ethernet Port Profile / Host LAN Network Port Profile
   The provider implements Ethernet Port Profile (derived from Host LAN Network Port 
   Profile) to model QLogic adapter information.

6.3 Diagnostic Profile
   The following Diagnostic tests are available:
	Control Registers
	MII Registers
	EEPROM
	Internal Memory
	Interrupt
	Loopback MAC
	Loopback PHY
	LEDs
	CPU
	Package Test
   Some diagnostic may not be available to certain devices due to hardware limitation.
   CIM_DiagnosticTest.RunDiagnostic() method is implemented to perform diagnostic on 
   the device represented by a BRCM_NetworkController instance referenced by the 
   ManagedElement parameter.

6.4 Software Inventory Profile
   QLogic device firmware, drivers, installers, management software, etc. are 
   represented by instances of CIM_SoftwareIdentity.   

6.5 Software Update Profile
   CIM_SoftwareInstallationService.InstallFromURI() method is implemented to support 
   firmware upgrade for QLogic Ethernet Controllers. This function takes the 
   following parameters:
   1. URI - the URI corresponding to the new firmware image to be used.
   2. Target - reference to the CIM_SoftwareIdentity corresponding to the 
               device and firmware to be upgraded.
   3. InstallOptions - supports options "defer reset" (2), "force" (3),
                       "update" (5), "reboot" (7) and QLogic specific 
                       values 32768 and 32769.
   4. InstallOptionsValues - if QLogic specific values 32768 or 32769 are used in 
                       InstallOptions array, there should be an entry in 
                       InstallOptionValues array with the same index of the QLogic
                       specific value in the InstallOptions array.
                       e.g. if the 2nd entry of InstallOptions contains 32768, then 
                       the 2nd entry of InstallOptionsValue should contain an option 
                       string accordingly.
                       "-p" to upgrade iSCSI configuration program along with iSCSI 
                       firmware.

   For iscsi firmware upgrade, the following 2 entries in InstallOptions/InstallOptionsValues 
   are supported:
       InstallOptions    InstallOptionsValues           Required    Purpose
   -----------------------------------------------------------------------------------------------
   1.  32768             "-p"                           No          upgrade iscsi config program
                                                                    along with iscsi firmware
   2.  32769             "ipv4", "ipv6", or "ipv4n6"    Yes         specify the iscsi configuration
                                                                    for the upgrade 
   If option 32769 and the corresponding value is not specified when upgrading iscsi firmware, 
   InstallFromURI() method will return error. 

6.6 DASH Standard 1.1
   The provider conforms to DASH Standard 1.1 and implements QLogic OOB Management 
   Service Profile is to manage DASH enabled devices, and supports IPv4/IPv6 setting info, 
   configuration of 802.1x, Active Directory, HTTP, HTTPS, HTTPS Client, RMCP, Secure RMCP, 
   and Web Server.

6.7 Role Based Authorization Profile
   For DASH enabled devices, Role Based Authorization Profile is implemented to support 
   show roles, show access, assign roles and modify role.

6.8 Simple Identity Management Profile
   For DASH enabled devices, Simple Identity Management Profile is implemented to support 
   create account, modify account, delete account, and enable/disable account.

6.9 Opaque Management Data Profile
   For DASH enabled devices, Opaque Management Data Profile is implemented to support 
   create data, read/write data, assign access, and reassign ownership.



7.  Known Limitations
----------------------

   No known limitation. 


8. Troubleshooting
-------------------

Problem:        Cannot enumerate any BRCM classes

Possible cause: Provider software is not installed properly.
Solution:       Reinstall provider software and make sure the BnxCmpiProvider, 
                BmapiObjServices, and BrcmUtil libraries are in the library 
                search path.

Possible cause: Bmapi library is not in the library search path, or the wrong 
                version of Bmapi library is installed.
Solution:       Make sure a supported version of Bmapi library is in the library 
                search path. Refer to Dependency section for supported versions 
                of Bmapi.


Problem:        No QLogic devices are enumerated.

Possible cause: Device driver of supported version is not installed or not loaded.
Solution:       Make sure the device driver is installed and loaded properly.
                Ethtool should be able to enumerate the device if driver is installed.
                Refer to Dependency section for supported versions of device drivers.


Problem:        RunDiagnostic failed 

Possible cause: Ran out of disk/memory space.
Solution:       Free up disk/memory space and try again.

Possible cause: No admin privileges to run the tests.
Solution:       Login as administrator and try again.

Possible cause: Device is already in diagnostic state.
Solution:       Wait until the current diagnostic to finish and try again.


If the problem can't be solved by any of the above, and it is persistent, 
try using a different version of driver or software and repeat the test to 
rule out the possibility of faulty software.
If the problem still persists, contact support personnel and ask for support.


9. Third Party Software License
--------------------------------

Portions of this software contain third party code subject to the following conditions:

OpenSSL

/* ====================================================================
 * Copyright (c) 1998-2007 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer. 
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. All advertising materials mentioning features or use of this
 *    software must display the following acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 *
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 *    endorse or promote products derived from this software without
 *    prior written permission. For written permission, please contact
 *    openssl-core@openssl.org.
 *
 * 5. Products derived from this software may not be called "OpenSSL"
 *    nor may "OpenSSL" appear in their names without prior written
 *    permission of the OpenSSL Project.
 *
 * 6. Redistributions of any form whatsoever must retain the following
 *    acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 *
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 * ====================================================================
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

 Original SSLeay License
 -----------------------

/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
 * This library is free for commercial and non-commercial use as long as
 * the following conditions are aheared to.  The following conditions
 * apply to all code found in this distribution, be it the RC4, RSA,
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
 * included with this distribution is covered by the same copyright terms
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
 *
 * Copyright remains Eric Young's, and as such any Copyright notices in
 * the code are not to be removed.
 * If this package is used in a product, Eric Young should be given attribution
 * as the author of the parts of the library used.
 * This can be in the form of a textual message at program startup or
 * in documentation (online or textual) provided with the package.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *    "This product includes cryptographic software written by
 *     Eric Young (eay@cryptsoft.com)"
 *    The word 'cryptographic' can be left out if the rouines from the library
 *    being used are not cryptographic related :-).
 * 4. If you include any Windows specific code (or a derivative thereof) from 
 *    the apps directory (application code) you must include an acknowledgement:
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
 *
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */


Tcl/Tk License Terms

/* This software is copyrighted by the Regents of the University of California, 
 * Sun Microsystems, Inc., Scriptics Corporation, and other parties. The following 
 * terms apply to all files associated with the software unless explicitly disclaimed 
 * in individual files.
 * 
 * The authors hereby grant permission to use, copy, modify, distribute, and license 
 * this software and its documentation for any purpose, provided that existing copyright 
 * notices are retained in all copies and that this notice is included verbatim in any 
 * distributions. No written agreement, license, or royalty fee is required for any of 
 * the authorized uses. Modifications to this software may be copyrighted by their authors 
 * and need not follow the licensing terms described here, provided that the new terms 
 * are clearly indicated on the first page of each file where they apply.
 * 
 * IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, 
 * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF 
 * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS 
 * HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, 
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
 * PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" 
 * BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, 
 * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 * 
 * GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, 
 * the Government shall have only "Restricted Rights" in the software and related 
 * documentation as defined in the Federal Acquisition Regulations (FARs) in Clause 
 * 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, 
 * the software shall be classified as "Commercial Computer Software" and the Government 
 * shall have only "Restricted Rights" as defined in Clause 252.227-7013 (c) (1) of DFARs. 
 * Notwithstanding the foregoing, the authors grant the U.S. Government and others acting 
 * in its behalf permission to use and distribute the software in accordance with the terms 
 * specified in this license. 
 */

License of libxml2

/* Except where otherwise noted in the source code (e.g. the files hash.c,
 * list.c and the trio files, which are covered by a similar licence but
 * with different Copyright notices) all the files are:
 * 
 *  Copyright (C) 1998-2003 Daniel Veillard.  All Rights Reserved.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is fur-
 * nished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
 * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 * DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
 * NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * 
 * Except as contained in this notice, the name of Daniel Veillard shall not
 * be used in advertising or otherwise to promote the sale, use or other deal-
 * ings in this Software without prior written authorization from him.
 */
